.. :validated: 3.0.0

Инструкция по обновлению ALD Pro до версии 2.4.0 и более поздних с ранее установленным модулем синхронизации
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Общая информация
^^^^^^^^^^^^^^^^

При обновлении контроллера домена **ALD Pro** до версии 2.4.0 и более поздних, с ранее установленным модулем синхронизации, процесс миграции базы данных может занять продолжительное время. Если база данных содержит 30000 пользователей и более, то рекомендуется сначала обновить **ALD Pro**, затем выбрав отдельный интервал профилактики обновить модуль синхронизации, согласно этой инструкции.

Проверка и подготовка состояния синхронизации
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Перед началом обновления необходимо убедиться в отсутствии ошибок в работе модуля синхронизации.  
Если ошибки синхронизации присутствуют, их необходимо устранить до начала обновления, чтобы избежать проблем миграции и работы системы после обновления.

Проверить состояние служб синхронизации:

.. code-block:: bash

    systemctl status syncer-loadrunner.timer
    systemctl status syncer-watcher.timer

Проверить логи на наличие ошибок:

.. code-block:: bash

    tail -n 100 /var/log/aldpro/syncer/syncer_loadrunner.log
    tail -n 100 /var/log/aldpro/syncer/syncer_watcher.log

Также проверить журналы ошибок синхронизации паролей:

.. code-block:: bash

    tail -n 100 /var/log/aldpro/syncer/pwd_sync/standalone_error.log

Если в логах обнаружены ошибки (например, `CRITICAL` или `ERROR` связанные с синхронизацией пользователей и групп), необходимо их устранить до начала обновления.  
В случае, если устранить ошибки самостоятельно невозможно — рекомендуется обратиться в техническую поддержку.

Предварительный этап
^^^^^^^^^^^^^^^^^^^^

Делается резервная копия базы данных модуля синхронизации в отдельную директорию (выбрать в соответствии с инфраструктурой):

.. code-block:: bash

    mkdir /srv/pg_backup && chown postgres:postgres /srv/pg_backup/
    sudo -i -u postgres
    $ pg_dump -d  syncer -F d -f /srv/pg_backup/syncer_$(date +%Y%m%d-%H%M)
    $ du -sh /srv/pg_backup/syncer_20240913-0938/
    520K	/srv/pg_backup/syncer_20240913-0938/

Проверить, что модуль синхронизации установлен, и запретить обновлять его пакеты (на примере ранее установленной версии ALD Pro 2.3.0):

.. code-block:: bash

    apt list --installed | grep -E 'aldpro(.*)sync'
    aldpro-mp-ui-syncer/1.7_x86-64,now 2.3.0-22 amd64 [установлен, автоматически]
    aldpro-syncer/1.7_x86-64,now 2.3.0-31 amd64 [установлен]
    apt-mark hold aldpro-syncer aldpro-mp-ui-syncer

Обновление ALD Pro до новой версии
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Обновить source.list и пакеты на контроллере домена с установленным модулем обновления.

.. code-block:: bash

    sudo apt dist-upgrade -y -o Dpkg::Options::=--force-confnew
    sudo aldpro-server-install --update --domain <domain> --host <hostname> --ip <ip> --setup_syncer [--setup_gc]

.. attention::

    Параметр ``--setup_gc`` необходим только в случае ранее установленного модуля глобального каталога на данном  контроллере домена.

Обновление модуля синхронизации
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

После основного этапа обновления **ALD Pro** и проверки работоспособности можно переходить к обновлению модуля синхронизации.

Снять удержание с пакетов:

.. code-block:: bash

    sudo apt-mark unhold aldpro-syncer aldpro-mp-ui-syncer

Обновить пакеты и завершить обновление **ALD Pro**:

.. code-block:: bash

   sudo apt dist-upgrade -y -o Dpkg::Options::=--force-confnew
   sudo aldpro-server-install --update --domain <domain> --host <hostname> --ip <ip> --setup_syncer [--setup_gc]

После завершения обновления, необходимо перезагрузить контроллер домена.

.. code-block:: bash

    sudo reboot

Обновление завершено.
